package solutions.ferpa.ztest.intf;

import br.com.telescope.adsrt.dom.DomId;
import br.com.telescope.adsrt.dom.DomOption;
import br.com.telescope.adsrt.dom.DomPercent;
import br.com.telescope.adsrt.dom.DomText;
import br.com.telescope.adsrt.dom.DomTextLong;
import br.com.telescope.t2.ServiceModel;
import br.com.telescope.t2.feature.DeleteFeature;
import br.com.telescope.t2.feature.ListFeature;
import br.com.telescope.t2.feature.MultiRowInsertFeature;
import br.com.telescope.t2.feature.MultiRowUpdateFeature;
import br.com.telescope.t2.feature.QueryFeature;
import br.com.telescope.t2.feature.ViewFeature;
import solutions.ferpa.ztest.ent.*;

/**
 * Pontos de ensaio.
 * <p>
 * Interface para manutenção de Ponto de ensaio
 * <P>
 * Telescope origin: ZTEST.CAD_PONTO_EXECUCAO
 * <P>
 * Base entity: ZTEST.PONTO_EXECUCAO
 * <P>
 * @author TELESCOPE - Build task T2 Web Interface Generator
 * <P>
 * @version 0.1
 */
public class CadPontoExecucao extends ServiceModel {
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    public static final String GLOBAL_NAME = "ZTEST.CAD_PONTO_EXECUCAO";
    
    @Override
    public String globalName() {
        return GLOBAL_NAME;
    }
    
    {
        setTitle("Pontos de ensaio");
    }
    
    protected EntPontoExecucao base;
    protected EntPontoExecucao rec; // NEED_TJW1_COMPATIBILITY
    
    // Record items
    private DomText aSigla;
    private DomOption aCampoMedicao;
    private DomPercent aErroRegulagemMinima;
    private DomPercent aErroRegulagemMaxima;
    private DomTextLong aDescricao;
    private DomId aId;
    
    // Query items
    private DomTextLong qDescricao;
    private DomOption qCampoMedicao;
    private DomText qSigla;
    
    @Override
    public String getBaseSql() {
        return "select BASE.*"
                + " from PONTO_EXECUCAO BASE";
    }
    
    @Override
    public void initAttributes() {
        
        aSigla = new DomText();
        aSigla.context(ctx).name("SIGLA").label("Sigla do ponto de ensaio");
        
        aCampoMedicao = new DomOption();
        aCampoMedicao.context(ctx).name("CAMPO_MEDICAO").label("Campo de medição").group(true);
        aCampoMedicao.addOption("S", "Faixa Superior");
        aCampoMedicao.addOption("I", "Faixa Inferior");
        
        aErroRegulagemMinima = new DomPercent();
        aErroRegulagemMinima.context(ctx).name("ERRO_REGULAGEM_MINIMA").label("% de erro (regulagem mínima)");
        
        aErroRegulagemMaxima = new DomPercent();
        aErroRegulagemMaxima.context(ctx).name("ERRO_REGULAGEM_MAXIMA").label("% de erro (regulagem máxima)");
        
        aDescricao = new DomTextLong();
        aDescricao.context(ctx).name("DESCRICAO").label("Descrição do ponto de ensaio");
        
        aId = new DomId();
        aId.context(ctx).name("ID").label("Id");
        
        
        qDescricao = new DomTextLong();
        qDescricao.context(ctx).name("DESCRICAO").label("Descrição do ponto de ensaio");
        
        qCampoMedicao = new DomOption();
        qCampoMedicao.context(ctx).name("CAMPO_MEDICAO").label("Campo de medição");
        qCampoMedicao.addOption("S", "Faixa Superior");
        qCampoMedicao.addOption("I", "Faixa Inferior");
        
        qSigla = new DomText();
        qSigla.context(ctx).name("SIGLA").label("Sigla do ponto de ensaio");
    }
    
    @Override
    public String getQueryPkColumn() {
        return "BASE.ID";
    }
    
    @Override
    public void setId(String value) {
        this.aId.setValue(value);
    }
    
    @Override
    public EntPontoExecucao getRecord() {
        if (base == null) {
            base = new EntPontoExecucao(ctx);
            rec = base;
        }
        return this.base;
    }
    
    @Override
    public String getContextName() {
        return aSigla.toText();
    }
    
    @Override
    public String getDefaultOrderBy() {
        return "SIGLA, CAMPO_MEDICAO, DESCRICAO";
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="QUERY">
    public class FQuery extends QueryFeature {
        
        @Override
        public void initForm() {
            addField(qSigla, "opt");
            addField(qCampoMedicao, "opt");
            addField(qDescricao, "opt");
        }
        
        {
            setFeatureName("QUERY");
            setPrimary(false);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="LIST">
    public class FList extends ListFeature {
        
        @Override
        public void initForm() {
            addField(aSigla, "view");
            addField(aCampoMedicao, "view");
            addField(aDescricao, "view");
        }
        
        {
            setFeatureName("LIST");
            setPrimary(false);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="VIEW">
    public class FView extends ViewFeature {
        
        @Override
        public void initForm() {
            addField(aSigla, "view");
            addField(aCampoMedicao, "view");
            addField(aErroRegulagemMinima, "view");
            addField(aErroRegulagemMaxima, "view");
            addField(aDescricao, "view");
        }
        
        {
            setFeatureName("VIEW");
            setPrimary(false);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="INSERT">
    public class FInsert extends MultiRowInsertFeature {
        
        @Override
        public void initForm() {
            aSigla.setOptional(false);
            addField(aSigla, "rqd");
            aCampoMedicao.setOptional(false);
            addField(aCampoMedicao, "rqd");
            aErroRegulagemMinima.setOptional(false);
            addField(aErroRegulagemMinima, "rqd");
            aErroRegulagemMaxima.setOptional(false);
            addField(aErroRegulagemMaxima, "rqd");
            aDescricao.setOptional(false);
            addField(aDescricao, "rqd");
        }
        
        {
            setFeatureName("INSERT");
            setPrimary(false);
            setRows(5);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="UPDATE">
    public class FUpdate extends MultiRowUpdateFeature {
        
        @Override
        public void initForm() {
            aSigla.setOptional(false);
            addField(aSigla, "rqd");
            aCampoMedicao.setOptional(false);
            addField(aCampoMedicao, "rqd");
            aErroRegulagemMinima.setOptional(false);
            addField(aErroRegulagemMinima, "rqd");
            aErroRegulagemMaxima.setOptional(false);
            addField(aErroRegulagemMaxima, "rqd");
            aDescricao.setOptional(false);
            addField(aDescricao, "rqd");
        }
        
        {
            setFeatureName("UPDATE");
            setPrimary(false);
            setRows(10);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="DELETE">
    public class FDelete extends DeleteFeature {
        
        @Override
        public void initForm() {
            addField(aSigla, "view");
            addField(aCampoMedicao, "view");
            addField(aDescricao, "view");
        }
        
        {
            setFeatureName("DELETE");
            setPrimary(false);
        }
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="initFeatures">
    
    @Override
    protected void initFeatures() {
        addFeature(new FQuery());
        addFeature(new FList());
        addFeature(new FView());
        addFeature(new FInsert());
        addFeature(new FUpdate());
        addFeature(new FDelete());
        super.initFeatures();
    }
    
    @Override
    public String getDefaultFeature() {
        return "QUERY";
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Getters and Setters">
    
    public String getSigla() {
        return aSigla.getValue();
    }
    
    public void setSigla(String value) {
        this.aSigla.setValue(value);
    }
    
    public String getCampoMedicao() {
        return aCampoMedicao.getValue();
    }
    
    public void setCampoMedicao(String value) {
        this.aCampoMedicao.setValue(value);
    }
    
    public Double getErroRegulagemMinima() {
        return aErroRegulagemMinima.getValue();
    }
    
    public void setErroRegulagemMinima(Double value) {
        this.aErroRegulagemMinima.setValue(value);
    }
    
    public Double getErroRegulagemMaxima() {
        return aErroRegulagemMaxima.getValue();
    }
    
    public void setErroRegulagemMaxima(Double value) {
        this.aErroRegulagemMaxima.setValue(value);
    }
    
    public String getDescricao() {
        return aDescricao.getValue();
    }
    
    public void setDescricao(String value) {
        this.aDescricao.setValue(value);
    }
    
    @Override
    public Long getId() {
        return aId.getValue();
    }
    
    public void setId(Long value) {
        this.aId.setValue(value);
    }
    public String getQuerySigla() {
        return qSigla.getQueryValue();
    }
    
    public void setQuerySigla(String value) {
        this.qSigla.setQueryValue(value);
    }
    public String getQueryCampoMedicao() {
        return qCampoMedicao.getQueryValue();
    }
    
    public void setQueryCampoMedicao(String value) {
        this.qCampoMedicao.setQueryValue(value);
    }
    public String getQueryDescricao() {
        return qDescricao.getQueryValue();
    }
    
    public void setQueryDescricao(String value) {
        this.qDescricao.setQueryValue(value);
    }
    // </editor-fold>
    
}
